Program RFEM 6 pro statické výpočty tvoří základ modulárního softwarového systému. Hlavní program RFEM 6 slouží k zadávání konstrukcí, materiálů a zatížení u rovinných i prostorových konstrukčních systémů, které se skládají z desek, stěn, skořepin a prutů. Program umožňuje vytvářet smíšené konstrukce, stejně jako modelovat tělesa a kontaktní prvky.
RSTAB 9 je výkonný program pro analýzu 3D prutových konstrukcí, který statikům pomáhá vyhovět požadavkům moderního stavebního inženýrství a odráží nejnovější trendy v oboru.
Jste často příliš dlouho zaměstnáni výpočtem průřezů? Software Dlubal a samostatný program RSECTION vám usnadní práci stanovením a analýzou napětí pro různé průřezy.
Víte vždy, odkud vítr vane? Ve směru inovace, samozřejmě! S RWIND 2 máte k dispozici program, který využívá digitální větrný tunel pro numerickou simulaci proudění větru. Program toto proudění aplikuje na libovolné geometrie budov a stanoví zatížení větrem působící na jejich povrch.
Hledáte přehled oblastí zatížení sněhem, větrem a zemětřesením? Pak jste zde správně. Mapy oblastí zatížení umožňují rychle a snadno stanovit oblasti zatížení sněhem, větrem a zemětřesením podle Eurokódu a dalších mezinárodních norem.
Chcete si vyzkoušet sílu programů Dlubal? Je to vaše příležitost! S bezplatnou 90denní plnou verzí si můžete všechny naše programy plně otestovat.
V příkladu programu je nejprve vytvořena konzola z profilu IPE 200. Následně se na ní aplikuje zatížení na prut 3,5 kN a provede se výpočet.
Tato tabulka je dostupná na řádku 34:
Metoda ResultTables.NodesDeformations() vyžaduje 3 argumenty. Nejprve se určí, jaký typ výsledků se má načíst. Mohou to být výsledky pro
ResultTables.NodesDeformations()
.
Poté se zadá číslo zatěžovacího stavu, kombinace zatížení atd. Nakonec se do metody zadá číslo uzlu.
Vrácená hodnota d metody je seznam, který obsahuje slovník. V řádku 37 se zobrazí celé d. Řádek 40 ukazuje, jak lze přistupovat k určité hodnotě. [0] je přitom index seznamu a ['displacement_z'] je klíč slovníku.
d
[0]
['displacement_z']
Deformace prutů je možné načíst např. pomocí funkce "GetMemberDeformations()". Tato funkce očekává číslo, typ metody počítání pro pruty (číslo prutu / číslo v seznamu) a jaký souřadný systém se má použít. Přitom je možné vybrat, zda se použije lokální osový systém, hlavní osový systém, nebo globální souřadný systém:
Sub test_results_member_axis()Dim iApp As RFEM5.ApplicationSet iApp = GetObject(, "RFEM5.Application")iApp.LockLicenseDim iMod As RFEM5.IModel3Set iMod = iApp.GetActiveModelOn Error GoTo e'get interface for calculationDim iCalc As RFEM5.ICalculation2Set iCalc = iMod.GetCalculation'get interface for resultsDim iRes As RFEM5.IResults2Set iRes = iCalc.GetResultsInFeNodes(LoadCaseType, 1)'get deformations in local coordinate systemDim memDefs_L() As RFEM5.MemberDeformationsmemDefs_L = iRes.GetMemberDeformations(1, AtNo, LocalMemberAxes)'get deformations in global coordinate systemDim memDefs_G() As RFEM5.MemberDeformationsmemDefs_G = iRes.GetMemberDeformations(1, AtNo, GlobalAxes)'get deformations in principal coordinate systemDim memDefs_P() As RFEM5.MemberDeformationsmemDefs_P = iRes.GetMemberDeformations(1, AtNo, LocalPrincipalAxes)e:If Err.Number <> 0 Then MsgBox Err.description, vbCritical, Err.SourceiMod.GetApplication.UnlockLicenseSet iMod = NothingEnd Sub
Malý program pro prut načte lokální deformace (memDefs_L) v osách prutu a hlavních osách (memDefs_P) a globální deformace v osách prutu (memDefs_G).
Parametry modelu lze upravovat pomocí rozhraní IModel (od IModel3):
Sub test_parameter()Dim iApp As RFEM5.ApplicationSet iApp = GetObject(, "RFEM5.Application")iApp.LockLicenseDim j As Integerj = iApp.GetModelCountDim iMod As RFEM5.IModel3Set iMod = iApp.GetActiveModelOn Error GoTo eDim formParams() As RFEM5.FormulaParameter' get all formula parametersformParams = iMod.GetFormulaParameters' delete all formula parametersiMod.CleanFormulaParameters' set list of formula parametersReDim Preserve formParams(0 To UBound(formParams, 1) + 1)formParams(UBound(formParams, 1)).Name = "p"formParams(UBound(formParams, 1)).Unit = "m"formParams(UBound(formParams, 1)).UnitType = LengthUnitTypeformParams(UBound(formParams, 1)).Value = 0formParams(UBound(formParams, 1)).ValueType = DoubleTypeformParams(UBound(formParams, 1)).Comment = "new parameter"formParams(UBound(formParams, 1)).Formula = "b/3"formParams(UBound(formParams, 1)).RangeOfValues = "(3;5.5>"iMod.SetFormulaParameters formParamse:If Err.Number <> 0 Then MsgBox Err.description, vbCritical, Err.SourceiMod.GetApplication.UnlockLicenseSet iMod = NothingEnd Sub
Pouze pomocí funkce GetFormulaParameters() je možné načíst všechny parametry. Upravené nebo nové parametry lze poté znovu přenést jako seznam pomocí funkce SetFormulaParameters(). Nelze tedy načíst ani zapsat žádné jednotlivé parametry.
Je třeba poznamenat, že hodnota "Value" vztahující se k jejímu typu (ValueTyp) a její jednotce (Unit) musí ležet v definovaných mezích (RangeOfValues), jinak se zobrazí chybové hlášení. Pokud je hodnota spočítána jako v příkladu, je irelevantní a hodnota vypočítaná pomocí vzorce (Formula) musí ležet v daných mezích, pokud jsou definovány.
Stejně jako všechny ostatní výsledky lze i výslednice řezu načíst pomocí IModel3 > ICalculation2 > IResults2. Rozhraní k výsledkům poskytuje funkce GetResultant, která při zadání čísla řezu a typu průběhu výsledků vrátí strukturu ResultantForce. Tato konstrukce zahrnuje mimo jiné síly a momenty jako vektor:
Napětí na ploše je možné načíst pomocí rozhraní COM. Nejdříve je potřeba rozhraní k modelu (IModel) a poté rozhraní pro výpočet (ICalculation2). Pomocí tohoto rozhraní lze získat rozhraní pro výsledky (IResults2):
Sub stresses_surfaces_example()Dim iApp As RFEM5.ApplicationDim iModel As RFEM5.modelSet iModel = GetObject(, "RFEM5.Model")On Error GoTo EIf Not iModel Is Nothing Then ' get interface from model Set iApp = iModel.GetApplication iApp.LockLicense ' get interface from calculation Dim iCalc As RFEM5.ICalculation2 Set iCalc = iModel.GetCalculation ' get interface from results from loadcase 1 Dim iRes As RFEM5.IResults2 Set iRes = iCalc.GetResultsInFeNodes(LoadCaseType, 1) ' get equivalent stresses Dim str_equ() As RFEM5.SurfaceEquivalentStresses str_equ = iRes.GetSurfaceEquivalentStresses(1, AtNo, VonMisesHypothesis) End IfE:If Err.Number <> 0 Then MsgBox Err.Number & " " & Err.descriptionEnd IfIf Not iApp Is Nothing Then iApp.UnlockLicenseEnd If
Funkce GetSurfaceEquivalentStresses vyžaduje zadání hypotézy výpočtu. Ve výše uvedeném případě se načtou výsledky von Misesova napětí. Je třeba si uvědomit, že rozhraní COM používá jednotky SI, takže napětí se přenáší v N/m².
Sub test_section()' get interface from the opened model and lock the licence/program Dim iModel As RFEM5.IModel3 Set iModel = GetObject(, "RFEM5.Model") iModel.GetApplication.LockLicense On Error GoTo E Dim iSecs As RFEM5.ISections Set iSecs = iModel.GetSections()
' first delete all sections iSecs.PrepareModification iSecs.DeleteObjects ("All") iSecs.FinishModification ' set section on solid Dim sec As RFEM5.Section sec.EdgePointA.X = 2 sec.EdgePointA.Y = 5 sec.EdgePointA.Z = 0 sec.EdgePointB.X = 2 sec.EdgePointB.Y = 8 sec.EdgePointB.Z = 0 sec.no = 1 sec.Name = "solid section" sec.Plane = GlobalPlaneInPositiveX sec.ShowValuesInIsolines = False sec.Type = SectionOnSolidSectionLine sec.ObjectList = "1" iSecs.PrepareModification iSecs.SetSection sec iSecs.FinishModification
' set section on surface sec.EdgePointA.X = 2 sec.EdgePointA.Y = 0 sec.EdgePointA.Z = 0 sec.EdgePointB.X = 2 sec.EdgePointB.Y = 3 sec.EdgePointB.Z = 0 sec.no = 2 sec.Name = "surface section" sec.Plane = GlobalPlaneInPositiveX sec.ShowValuesInIsolines = True sec.Type = SectionViaSurfacePlane sec.ObjectList = "1" sec.Vector.X = 0 sec.Vector.Y = 0 sec.Vector.Z = 1 iSecs.PrepareModification iSecs.SetSection sec iSecs.FinishModification
' get results Dim iCalc As ICalculation2 Set iCalc = iModel.GetCalculation Dim iRes As IResults2 Set iRes = iCalc.GetResultsInFeNodes(LoadCaseType, 1) Dim secRes() As RFEM5.SectionResult secRes = iRes.GetResultsInSection(2, AtNo, ShearForceVy,ContinuousDistributionWithinObjects, False)
Dim model As RFEM5.model Set model = GetObject(, "RFEM5.Model") model.GetApplication.LockLicense On Error GoTo e Dim data As IModelData Set data = model.GetModelData Dim members(0) As RFEM5.Member members(0).No = 3 members(0).LineNo = 12 members(0).Type = ResultBeamType members(0).StartCrossSectionNo = 1 members(0).EndCrossSectionNo = 1 members(0).Comment = "result beam 1" data.PrepareModification data.SetMembers members data.FinishModification
Dim iMem As IMember Set iMem = data.GetMember(3, AtNo) Dim iRMem As IResultBeam Set iRMem = iMem.GetExtraData Dim RMem As ResultBeam RMem = iRMem.GetData RMem.IncludeSurfaces = "1" RMem.IncludeSolids = "all" RMem.Integrate = WithinCuboidGeneral Dim params(0 To 3) As Double RMem.Parameters = params RMem.Parameters(0) = 0.5 RMem.Parameters(1) = 0.5 RMem.Parameters(2) = 0.1 RMem.Parameters(3) = 0.1 data.PrepareModification iRMem.SetData RMem data.FinishModification
Ja, Lagerkräfte einzelner Flächen können im RFEM-Tabellenfenster in Tabelle "4.21 Flächen - Kontaktspannungen" angezeigt werden. Tuto tabulku je možné otevřít kliknutím pravým tlačítkem myši na jednu ze záložek tabulky "4.xx - Výsledky" (viz Obrázek 01).
Kromě kontaktních napětí lze vidět také příslušné podporové síly (viz Obrázek 02).